import { NextRequest, NextResponse } from 'next/server'; import { getTableColumns } from '@/lib/oracle/db'; interface Params { tableName: string; } interface ApiError { message: string; error?: string; } /** * GET 핸들러 - 테이블의 특정 컬럼 데이터만 가져오기 */ export async function GET( request: NextRequest, { params }: { params: Params } ): Promise> { const { tableName } = params; if (!tableName) { return NextResponse.json( { message: '테이블 이름이 필요합니다.' }, { status: 400 } ); } // 쿼리 파라미터에서 컬럼 목록 가져오기 const searchParams = request.nextUrl.searchParams; const columnsParam = searchParams.get('columns'); if (!columnsParam) { return NextResponse.json( { message: '컬럼 목록이 필요합니다. 예: ?columns=ID,NAME,EMAIL' }, { status: 400 } ); } const columns = columnsParam.split(',').map(col => col.trim()); try { const data = await getTableColumns(tableName, columns); return NextResponse.json({ data }, { status: 200 }); } catch (error: any) { console.error('API 에러:', error); return NextResponse.json( { message: '서버 에러가 발생했습니다.', error: error.message }, { status: 500 } ); } }